Skip to content

Refactor compat test scripts and add Docker support for local testing#643

Open
kevinburkesegment wants to merge 2 commits intouutils:mainfrom
kevinburkesegment:refactor-compat-scripts
Open

Refactor compat test scripts and add Docker support for local testing#643
kevinburkesegment wants to merge 2 commits intouutils:mainfrom
kevinburkesegment:refactor-compat-scripts

Conversation

@kevinburkesegment
Copy link

Extract shared logic (build_rust, check_total, print_summary,
generate_result_json) into util/common.sh. Make test directories
configurable via GNU_DIR/BFS_DIR env vars so scripts work in both
CI and local/Docker environments. Add Dockerfile.compat and
util/docker-compat.sh for running the full compat suites locally.

Simplify the CI workflow: remove empty "Extract testing info" step,
hoist CARGO_INCREMENTAL=0 to workflow-level env, drop ||: that masked
script errors, pass explicit GNU_DIR/BFS_DIR, and remove redundant
artifact download-and-compare steps.

kevinburkesegment and others added 2 commits March 19, 2026 10:53
Extract shared logic (build_rust, check_total, print_summary,
generate_result_json) into util/common.sh. Make test directories
configurable via GNU_DIR/BFS_DIR env vars so scripts work in both
CI and local/Docker environments. Add Dockerfile.compat and
util/docker-compat.sh for running the full compat suites locally.

Simplify the CI workflow: remove empty "Extract testing info" step,
hoist CARGO_INCREMENTAL=0 to workflow-level env, drop ||: that masked
script errors, pass explicit GNU_DIR/BFS_DIR, and remove redundant
artifact download-and-compare steps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The %A+ format uses chrono's %.f which trims trailing zeros from
fractional seconds. On Windows (100ns resolution) this produces
fewer digits than on Linux (nanosecond resolution), causing the
regex to fail intermittently. Use \d+0 instead of \d{9}0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
with:
name: gnu-result
path: gnu-result.json
- name: Download artifacts (gnu-result and gnu-test-report)
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NOTE: The previous download-and-compare steps downloaded artifacts from
the current run (${{ github.run_id }}), then compared them against
the same logs already on disk -- producing "PASS +0 / FAIL +0" every
time (confirmed in upstream CI logs). To do actual regression detection,
this would need to download artifacts from the main branch's latest
run (e.g. via dawidd6/action-download-artifact). The artifact uploads
above are preserved for the upload-annotations job.

@kevinburkesegment kevinburkesegment force-pushed the refactor-compat-scripts branch from 9c4bad1 to 7761a3d Compare March 19, 2026 21:08
@codecov
Copy link

codecov bot commented Mar 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.76%. Comparing base (87ce037) to head (7761a3d).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #643   +/-   ##
=======================================
  Coverage   91.76%   91.76%           
=======================================
  Files          31       31           
  Lines        6203     6203           
  Branches      328      328           
=======================================
  Hits         5692     5692           
  Misses        390      390           
  Partials      121      121           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link

Commit 7761a3d has GNU testsuite comparison:

Run BFS tests: bfs test failed: gnu/execdir_path_empty. gnu/execdir_path_empty is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: gnu/execdir_path_dot. gnu/execdir_path_dot is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: gnu/L_loops_continue. gnu/L_loops_continue is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/okdir_closed_stdin. common/okdir_closed_stdin is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/ok_closed_stdin. common/ok_closed_stdin is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/newermt_epoch_minus_one. common/newermt_epoch_minus_one is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/newermt. common/newermt is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/execdir_slashes. common/execdir_slashes is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/execdir_nonexistent. common/execdir_nonexistent is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/HLP. common/HLP is passing on 'main'. Maybe you have to rebase?
Run BFS tests: BFS tests summary = TOTAL: 317 / PASS: 268 / SKIP: 6 / FAIL: 43 / ERROR: 0
Run GNU findutils tests: GNU test failed: execdir-root-only.new-O1. execdir-root-only.new-O1 is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: execdir-root-only.new-O0. execdir-root-only.new-O0 is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: empty_def-t. empty_def-t is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: empty-t. empty-t is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: P3-n1-IARG. P3-n1-IARG is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: L2_2. L2_2 is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: L2-n2. L2-n2 is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: IARG-s15. IARG-s15 is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: IARG. IARG is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: E_-IARG. E_-IARG is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU tests summary = TOTAL: 622 / PASS: 518 / SKIP: 1 / FAIL: 103 / ERROR: 0

1 similar comment
@github-actions
Copy link

Commit 7761a3d has GNU testsuite comparison:

Run BFS tests: bfs test failed: gnu/execdir_path_empty. gnu/execdir_path_empty is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: gnu/execdir_path_dot. gnu/execdir_path_dot is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: gnu/L_loops_continue. gnu/L_loops_continue is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/okdir_closed_stdin. common/okdir_closed_stdin is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/ok_closed_stdin. common/ok_closed_stdin is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/newermt_epoch_minus_one. common/newermt_epoch_minus_one is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/newermt. common/newermt is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/execdir_slashes. common/execdir_slashes is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/execdir_nonexistent. common/execdir_nonexistent is passing on 'main'. Maybe you have to rebase?
Run BFS tests: bfs test failed: common/HLP. common/HLP is passing on 'main'. Maybe you have to rebase?
Run BFS tests: BFS tests summary = TOTAL: 317 / PASS: 268 / SKIP: 6 / FAIL: 43 / ERROR: 0
Run GNU findutils tests: GNU test failed: execdir-root-only.new-O1. execdir-root-only.new-O1 is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: execdir-root-only.new-O0. execdir-root-only.new-O0 is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: empty_def-t. empty_def-t is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: empty-t. empty-t is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: P3-n1-IARG. P3-n1-IARG is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: L2_2. L2_2 is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: L2-n2. L2-n2 is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: IARG-s15. IARG-s15 is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: IARG. IARG is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU test failed: E_-IARG. E_-IARG is passing on 'main'. Maybe you have to rebase?
Run GNU findutils tests: GNU tests summary = TOTAL: 622 / PASS: 518 / SKIP: 1 / FAIL: 103 / ERROR: 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant